// 场景一：在普通函数中输出this
// function show(){
//     console.log(this);
// }
// show()

//场景二：在构造函数中输出this
// class Student{
//     constructor(id){
//         this.id = id
//         console.log(this);
//     }
//     showMessage(){
//         console.log(this.id);
//     }
// }

// const stu = new Student()
// const stu2 = new Student()

// 场景三：事件函数中this
// const obtn = document.getElementById("btn")
// obtn.onclick = function(){
//     console.log(this);
// }

// let obj = {
//     name:"xiaowang",
//     play:()=>{
//         console.log(this); //window
//     }
// }

// obj.play()

// let obj = {
//     name:"xiaowang",
//     play:()=>{
//         return ()=>{
//             console.log(th);
//         }
//     }
// }

// obj.play()()
let obj = {
    name:"xiaowang",
    play:()=>{
        //window
        //谁调用我，我就指向谁
        return function(){
            console.log(this);
        }
    }
}

const fun = obj.play()
fun()
